home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / PreferencesDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  11.6 KB  |  413 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.ApplicationPreferences;
  4. import com.extensibility.app.DialogFactory;
  5. import com.extensibility.app.UI;
  6. import com.extensibility.rock.RDialog;
  7. import com.extensibility.rock.RSeparator;
  8. import com.extensibility.rock.Screen;
  9. import com.extensibility.xml.SchemaUtilities;
  10. import java.awt.BorderLayout;
  11. import java.awt.Component;
  12. import java.awt.Container;
  13. import java.awt.Dialog;
  14. import java.awt.FlowLayout;
  15. import java.awt.Font;
  16. import java.awt.Frame;
  17. import java.awt.GridBagConstraints;
  18. import java.awt.GridBagLayout;
  19. import java.awt.Insets;
  20. import java.awt.Window;
  21. import java.io.File;
  22. import java.io.IOException;
  23. import javax.swing.BorderFactory;
  24. import javax.swing.Box;
  25. import javax.swing.ButtonGroup;
  26. import javax.swing.JButton;
  27. import javax.swing.JCheckBox;
  28. import javax.swing.JComboBox;
  29. import javax.swing.JDialog;
  30. import javax.swing.JFrame;
  31. import javax.swing.JLabel;
  32. import javax.swing.JPanel;
  33. import javax.swing.JRadioButton;
  34. import javax.swing.JTextArea;
  35. import javax.swing.JTextField;
  36. import javax.swing.border.EmptyBorder;
  37. import javax.swing.border.TitledBorder;
  38.  
  39. public class PreferencesDialog extends RDialog {
  40.    Frame parent;
  41.    JLabel lbldisplayTitle;
  42.    JLabel lblShowWelcome;
  43.    JLabel lblHelpBrowser;
  44.    JLabel lblDebuging;
  45.    JLabel debugDescription;
  46.    JTextArea taDebugDescription;
  47.    JLabel lblFont;
  48.    JLabel lblFontEnd;
  49.    JLabel lblDefSchema;
  50.    JButton btnBrowseBrowser;
  51.    JButton btnAccept;
  52.    JButton btnCancel;
  53.    JCheckBox cbShowWelcome;
  54.    JCheckBox cbOnlineHelp;
  55.    JCheckBox cbDebug;
  56.    JCheckBox cbOverview;
  57.    JCheckBox cbComment;
  58.    JComboBox cmbSchemaTypes;
  59.    JComboBox cmbFontSize;
  60.    JRadioButton rbXAHelp;
  61.    JRadioButton rbOtherHelp;
  62.    JTextField tfOtherBrowser;
  63.    JTextField tfSchemaPath;
  64.    JTextField tfOpenFromBase;
  65.    JTextField tfSaveToBase;
  66.    JPanel pnlDefaultSchema;
  67.    JPanel pnlHelpBrowser;
  68.    JPanel pnlSchemaPath;
  69.    JPanel pnlOpenFromBase;
  70.    JPanel pnlSaveToBase;
  71.    JPanel pnlMisc;
  72.    XAPreferences preferences;
  73.  
  74.    public PreferencesDialog(JFrame var1, ApplicationPreferences var2) {
  75.       super(var1, true);
  76.       this.parent = var1;
  77.       this.preferences = (XAPreferences)var2;
  78.       this.prepare();
  79.    }
  80.  
  81.    public void addNotify() {
  82.       super.addNotify();
  83.    }
  84.  
  85.    protected void doOK() {
  86.       this.preferences.updateOnlineHelp(this.cbOnlineHelp.isSelected());
  87.       this.preferences.updateShowWelcome(this.cbShowWelcome.isSelected());
  88.       this.preferences.updateShowOverview(this.cbOverview.isSelected());
  89.       this.preferences.updateShowComment(this.cbComment.isSelected());
  90.       String var1 = (String)this.cmbSchemaTypes.getSelectedItem();
  91.       var1 = var1.substring(var1.lastIndexOf(".") + 1, var1.lastIndexOf(".") + 4);
  92.       this.preferences.updateDefaultSchemaFlavor(var1);
  93.       if (this.rbXAHelp.isSelected()) {
  94.          this.preferences.updateBrowserPath((String)null);
  95.       } else {
  96.          this.preferences.updateBrowserPath(this.tfOtherBrowser.getText());
  97.       }
  98.  
  99.       this.preferences.updateSchemaPath(this.tfSchemaPath.getText());
  100.       this.preferences.updateOpenFromBase(this.tfOpenFromBase.getText());
  101.       this.preferences.updateSaveToBase(this.tfSaveToBase.getText());
  102.       String var2 = (String)this.cmbFontSize.getSelectedItem();
  103.       if (var2.equals(UI.getString("dialog.preferences.label.fontsize.defaultvalue"))) {
  104.          this.preferences.updateDocFont(-1);
  105.       } else {
  106.          this.preferences.updateDocFont(Integer.parseInt(var2));
  107.       }
  108.  
  109.       if (this.cbDebug.isSelected()) {
  110.          this.preferences.updateDebugLevel(2);
  111.       } else {
  112.          this.preferences.updateDebugLevel(0);
  113.       }
  114.  
  115.       try {
  116.          this.preferences.save();
  117.       } catch (IOException var4) {
  118.          DialogFactory.showException(this, 108, var4);
  119.       }
  120.  
  121.       ((Component)this).setVisible(false);
  122.       ((Window)this).dispose();
  123.    }
  124.  
  125.    private void prepare() {
  126.       this.lbldisplayTitle = new JLabel(UI.getString("dialog.preferences.display.title"));
  127.       this.lblHelpBrowser = new JLabel(UI.getString("dialog.preferences.label.helpdisplay"));
  128.       this.btnAccept = new JButton(UI.getString("dialog.ok"));
  129.       this.btnAccept.addActionListener(new 1(this));
  130.       this.btnCancel = new JButton(UI.getString("dialog.cancel"));
  131.       this.btnCancel.addActionListener(new 2(this));
  132.       this.lblDefSchema = new JLabel(UI.getString("dialog.preferences.label.defaultschema"));
  133.       String[] var1 = convertAllowedTypes(SchemaUtilities.getExtensions());
  134.       this.cmbSchemaTypes = new JComboBox(var1);
  135.       String var2 = this.preferences.getDefaultSchemaFlavor();
  136.       int var3 = 0;
  137.  
  138.       for(int var4 = 0; var4 < var1.length; ++var4) {
  139.          if (var1[var4].indexOf(var2) > 0) {
  140.             var3 = var4;
  141.          }
  142.       }
  143.  
  144.       this.cmbSchemaTypes.setSelectedIndex(var3);
  145.       this.rbXAHelp = new JRadioButton(UI.getString("dialog.preferences.button.xahelp"));
  146.       this.rbXAHelp.addActionListener(new 3(this));
  147.       this.rbOtherHelp = new JRadioButton(UI.getString("dialog.preferences.button.otherhelp"));
  148.       this.rbOtherHelp.addActionListener(new 4(this));
  149.       ButtonGroup var5 = new ButtonGroup();
  150.       var5.add(this.rbXAHelp);
  151.       var5.add(this.rbOtherHelp);
  152.       if (this.preferences.getBrowserPath() == null) {
  153.          this.rbXAHelp.setSelected(true);
  154.       } else {
  155.          this.rbOtherHelp.setSelected(true);
  156.       }
  157.  
  158.       String var6 = this.preferences.getBrowserPath();
  159.       if (var6 == null) {
  160.          var6 = UI.getString("dialog.preferences.otherbrowser.path");
  161.          if (!(new File(var6)).exists()) {
  162.             var6 = "";
  163.          }
  164.  
  165.          this.rbXAHelp.setSelected(true);
  166.       } else {
  167.          this.rbOtherHelp.setSelected(true);
  168.       }
  169.  
  170.       this.tfOtherBrowser = new JTextField(var6, 25);
  171.       this.btnBrowseBrowser = new JButton(UI.getString("dialog.preferences.expand"));
  172.       this.btnBrowseBrowser.setFont(new Font("SansSerif", 0, 9));
  173.       this.btnBrowseBrowser.addActionListener(new 5(this));
  174.       this.enableTfOtherBrowser();
  175.       JPanel var7 = new JPanel();
  176.       ((Container)var7).add(this.tfOtherBrowser);
  177.       ((Container)var7).add(Box.createHorizontalStrut(3));
  178.       ((Container)var7).add(this.btnBrowseBrowser);
  179.       this.pnlSchemaPath = new JPanel();
  180.       TitledBorder var8 = BorderFactory.createTitledBorder(UI.getString("dialog.preferences.panel.schemapath"));
  181.       this.pnlSchemaPath.setBorder(var8);
  182.       String var9 = this.preferences.getSchemaPath();
  183.       if (var9 == null) {
  184.          var9 = "";
  185.       }
  186.  
  187.       this.tfSchemaPath = new JTextField(var9, 25);
  188.       this.pnlSchemaPath.add(this.tfSchemaPath);
  189.       this.pnlOpenFromBase = new JPanel();
  190.       TitledBorder var10 = BorderFactory.createTitledBorder(UI.getString("dialog.preferences.panel.openfrombase"));
  191.       this.pnlOpenFromBase.setBorder(var10);
  192.       String var11 = this.preferences.getOpenFromBase();
  193.       if (var11 == null) {
  194.          var11 = "";
  195.       }
  196.  
  197.       this.tfOpenFromBase = new JTextField(var11, 25);
  198.       this.pnlOpenFromBase.add(this.tfOpenFromBase);
  199.       this.pnlSaveToBase = new JPanel();
  200.       TitledBorder var12 = BorderFactory.createTitledBorder(UI.getString("dialog.preferences.panel.savetobase"));
  201.       this.pnlSaveToBase.setBorder(var12);
  202.       String var13 = this.preferences.getSaveToBase();
  203.       if (var13 == null) {
  204.          var13 = "";
  205.       }
  206.  
  207.       this.tfSaveToBase = new JTextField(var13, 25);
  208.       this.pnlSaveToBase.add(this.tfSaveToBase);
  209.       this.lblFont = new JLabel(UI.getString("dialog.preferences.label.fontsize"));
  210.       this.cbShowWelcome = new JCheckBox(UI.getString("dialog.preferences.cb.showwelcome"));
  211.       this.cbShowWelcome.setSelected(this.preferences.getShowWelcome());
  212.       this.cbOnlineHelp = new JCheckBox(UI.getString("dialog.preferences.cb.onlinehelp"));
  213.       this.cbOnlineHelp.setSelected(this.preferences.getOnlineHelp());
  214.       this.cbOverview = new JCheckBox(UI.getString("dialog.preferences.cb.showoverview"));
  215.       this.cbOverview.setSelected(this.preferences.getShowOverview());
  216.       this.cbComment = new JCheckBox(UI.getString("dialog.preferences.cb.showcomment"));
  217.       this.cbComment.setSelected(this.preferences.getShowComment());
  218.       this.debugDescription = new JLabel(UI.getString("dialog.preferences.label.debuging.description"));
  219.       this.debugDescription.setFont(new Font("Dialog", 0, 10));
  220.       this.taDebugDescription = UI.createTextArea(false);
  221.       this.taDebugDescription.setFont(new Font("Dialog", 0, 9));
  222.       this.taDebugDescription.setBackground(((JDialog)this).getContentPane().getBackground());
  223.       this.taDebugDescription.setText(UI.getString("dialog.preferences.label.debuging.description"));
  224.       this.taDebugDescription.setSize(50, 20);
  225.       this.cbDebug = new JCheckBox(UI.getString("dialog.preferences.cb.debuging"));
  226.       if (this.preferences.getDebugLevel() > 0) {
  227.          this.cbDebug.setSelected(true);
  228.       }
  229.  
  230.       this.lblFont = new JLabel(UI.getString("dialog.preferences.label.fontsize.description"));
  231.       String[] var14 = new String[]{"Default", "9", "10", "11", "12", "14"};
  232.       this.cmbFontSize = new JComboBox(var14);
  233.       Font var15 = this.preferences.getDocFont();
  234.       if (var15 != null) {
  235.          this.cmbFontSize.setSelectedItem(Integer.toString(var15.getSize()));
  236.       } else {
  237.          this.cmbFontSize.setSelectedItem("Default");
  238.       }
  239.  
  240.       this.cmbFontSize.setSize(30, 15);
  241.       this.lblFontEnd = new JLabel(UI.getString("dialog.preferences.label.fontsize.requires"));
  242.       this.lblFontEnd.setFont(new Font("Dialog", 0, 10));
  243.       JPanel var16 = new JPanel();
  244.       ((Container)var16).add(this.lblFont);
  245.       ((Container)var16).add(Box.createHorizontalStrut(3));
  246.       ((Container)var16).add(this.cmbFontSize);
  247.       ((Container)var16).add(Box.createHorizontalStrut(2));
  248.       ((Container)var16).add(this.lblFontEnd);
  249.       this.pnlDefaultSchema = new JPanel();
  250.       TitledBorder var17 = BorderFactory.createTitledBorder(UI.getString("dialog.preferences.panel.schema.title"));
  251.       this.pnlDefaultSchema.setBorder(var17);
  252.       GridBagLayout var18 = new GridBagLayout();
  253.       GridBagConstraints var19 = new GridBagConstraints();
  254.       this.pnlDefaultSchema.setLayout(var18);
  255.       var19.insets = new Insets(2, 5, 2, 5);
  256.       var19.ipady = 5;
  257.       var19.fill = 2;
  258.       var19.weightx = (double)0.5F;
  259.       var19.gridx = 0;
  260.       var19.gridy = 0;
  261.       var18.setConstraints(this.lblDefSchema, var19);
  262.       this.pnlDefaultSchema.add(this.lblDefSchema);
  263.       var19.fill = 2;
  264.       var19.weightx = (double)0.5F;
  265.       var19.gridx = 0;
  266.       var19.gridy = 1;
  267.       var18.setConstraints(this.cmbSchemaTypes, var19);
  268.       this.pnlDefaultSchema.add(this.cmbSchemaTypes);
  269.       this.pnlHelpBrowser = new JPanel();
  270.       TitledBorder var20 = BorderFactory.createTitledBorder(UI.getString("dialog.preferences.panel.help.title"));
  271.       this.pnlHelpBrowser.setBorder(var20);
  272.       GridBagLayout var21 = new GridBagLayout();
  273.       GridBagConstraints var22 = new GridBagConstraints();
  274.       this.pnlHelpBrowser.setLayout(var21);
  275.       var22.insets = new Insets(2, 5, 2, 5);
  276.       var22.fill = 2;
  277.       var22.weightx = (double)0.5F;
  278.       var22.gridx = 0;
  279.       var22.gridy = 0;
  280.       var21.setConstraints(this.rbXAHelp, var22);
  281.       this.pnlHelpBrowser.add(this.rbXAHelp);
  282.       var22.gridx = 0;
  283.       var22.gridy = 1;
  284.       var21.setConstraints(this.rbOtherHelp, var22);
  285.       this.pnlHelpBrowser.add(this.rbOtherHelp);
  286.       var22.anchor = 17;
  287.       var22.gridx = 0;
  288.       var22.gridy = 2;
  289.       var21.setConstraints(var7, var22);
  290.       this.pnlHelpBrowser.add(var7);
  291.       this.pnlMisc = new JPanel();
  292.       TitledBorder var23 = BorderFactory.createTitledBorder(UI.getString("dialog.preferences.panel.misc.title"));
  293.       this.pnlMisc.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(8, 0, 0, 0), var23));
  294.       GridBagLayout var24 = new GridBagLayout();
  295.       GridBagConstraints var25 = new GridBagConstraints();
  296.       this.pnlMisc.setLayout(var24);
  297.       var25.insets = new Insets(2, 5, 2, 5);
  298.       var25.fill = 2;
  299.       var25.weightx = (double)0.0F;
  300.       var25.ipady = 5;
  301.       var25.insets.left = 4;
  302.       var25.gridx = 0;
  303.       var25.gridy = 0;
  304.       var24.setConstraints(this.cbOnlineHelp, var25);
  305.       this.pnlMisc.add(this.cbOnlineHelp);
  306.       var25.gridx = 0;
  307.       var25.gridy = 1;
  308.       var24.setConstraints(this.cbShowWelcome, var25);
  309.       this.pnlMisc.add(this.cbShowWelcome);
  310.       var25.gridx = 0;
  311.       var25.gridy = 2;
  312.       var24.setConstraints(this.cbOverview, var25);
  313.       this.pnlMisc.add(this.cbOverview);
  314.       var25.gridx = 0;
  315.       var25.gridy = 3;
  316.       var24.setConstraints(this.cbComment, var25);
  317.       this.pnlMisc.add(this.cbComment);
  318.       var25.gridx = 0;
  319.       var25.gridy = 4;
  320.       var25.weighty = (double)0.0F;
  321.       var25.fill = 0;
  322.       var25.anchor = 17;
  323.       var24.setConstraints(var16, var25);
  324.       this.pnlMisc.add(var16);
  325.       var25.gridx = 0;
  326.       var25.gridy = 5;
  327.       var25.fill = 2;
  328.       RSeparator var26 = new RSeparator(3);
  329.       var24.setConstraints(var26, var25);
  330.       this.pnlMisc.add(var26);
  331.       var25.gridx = 0;
  332.       var25.gridy = 6;
  333.       var24.setConstraints(this.cbDebug, var25);
  334.       this.pnlMisc.add(this.cbDebug);
  335.       var25.gridx = 0;
  336.       var25.gridy = 7;
  337.       var24.setConstraints(this.debugDescription, var25);
  338.       this.pnlMisc.add(this.debugDescription);
  339.       JPanel var27 = new JPanel();
  340.       GridBagLayout var28 = new GridBagLayout();
  341.       GridBagConstraints var29 = new GridBagConstraints();
  342.       ((Container)var27).setLayout(var28);
  343.       var29.fill = 2;
  344.       var29.insets = new Insets(0, 5, 0, 0);
  345.       var29.insets.top = 8;
  346.       var29.weighty = (double)20.0F;
  347.       var29.weightx = (double)0.5F;
  348.       var29.gridx = 0;
  349.       var29.gridy = 0;
  350.       var28.setConstraints(this.pnlDefaultSchema, var29);
  351.       ((Container)var27).add(this.pnlDefaultSchema);
  352.       var29.gridx = 0;
  353.       var29.gridy = 1;
  354.       var28.setConstraints(this.pnlHelpBrowser, var29);
  355.       ((Container)var27).add(this.pnlHelpBrowser);
  356.       var29.gridx = 0;
  357.       var29.gridy = 2;
  358.       var28.setConstraints(this.pnlSchemaPath, var29);
  359.       ((Container)var27).add(this.pnlSchemaPath);
  360.       var29.gridx = 0;
  361.       var29.gridy = 3;
  362.       var28.setConstraints(this.pnlOpenFromBase, var29);
  363.       ((Container)var27).add(this.pnlOpenFromBase);
  364.       var29.gridx = 0;
  365.       var29.gridy = 4;
  366.       var28.setConstraints(this.pnlSaveToBase, var29);
  367.       ((Container)var27).add(this.pnlSaveToBase);
  368.       JPanel var30 = new JPanel();
  369.       ((Container)var30).setLayout(new FlowLayout(1, 16, 8));
  370.       ((Container)var30).add(this.btnAccept);
  371.       ((Container)var30).add(this.btnCancel);
  372.       BorderLayout var31 = new BorderLayout(8, 8);
  373.       ((JDialog)this).getContentPane().setLayout(var31);
  374.       ((JDialog)this).getContentPane().add(var30, "South");
  375.       ((JDialog)this).getContentPane().add(this.pnlMisc, "East");
  376.       ((JDialog)this).getContentPane().add(var27, "Center");
  377.       ((JDialog)this).setDefaultCloseOperation(1);
  378.       ((Dialog)this).setTitle(UI.getString("dialog.preferences.title"));
  379.       ((Window)this).pack();
  380.       Screen.centerInScreen(this);
  381.    }
  382.  
  383.    public static String[] convertAllowedTypes(String[] var0) {
  384.       if (var0 == null) {
  385.          var0 = new String[0];
  386.       }
  387.  
  388.       String[] var1 = new String[var0.length];
  389.  
  390.       for(int var2 = 0; var2 < var0.length; ++var2) {
  391.          var1[var2] = UI.getString("dialog.file.type", UI.getFileTypeName(var0[var2]), var0[var2]);
  392.       }
  393.  
  394.       return var1;
  395.    }
  396.  
  397.    private void enableTfOtherBrowser() {
  398.       if (this.rbXAHelp.isSelected()) {
  399.          this.tfOtherBrowser.setEnabled(false);
  400.          this.btnBrowseBrowser.setEnabled(false);
  401.       } else {
  402.          this.tfOtherBrowser.setEnabled(true);
  403.          this.btnBrowseBrowser.setEnabled(true);
  404.       }
  405.  
  406.    }
  407.  
  408.    // $FF: synthetic method
  409.    static void access$7000071(PreferencesDialog var0) {
  410.       var0.enableTfOtherBrowser();
  411.    }
  412. }
  413.